home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / raid123.arc / RAID.DOC < prev    next >
Text File  |  1989-10-28  |  83KB  |  2,564 lines

  1.                       >>> STARTING RAID <<<
  2.  
  3.  
  4.  
  5.  
  6.  
  7.      RAID is started the same way as DEBUG. Type RAID followed by 
  8. an optional program name followed by optional arguments. The only 
  9. difference  between RAID and DEBUG command lines is that the file 
  10. extension must be specified.
  11.  
  12.  
  13.             To run RAID enter:
  14.  
  15.                          RAID
  16.  
  17.  
  18.             To debug foo.com enter:
  19.  
  20.                          RAID FOO.COM
  21.  
  22.  
  23.             To debug myfile.exe with apple as an argument enter:
  24.  
  25.                          RAID MYFILE.EXE APPLE
  26.  
  27.  
  28.  
  29.      If  a file is found with the same name as the program to  be 
  30. debugged  with a .SYM extension it is automatically  loaded  into 
  31. the symbol table.
  32.  
  33.  
  34.      Raid  may be loaded resident so it may be used  anytime.  To 
  35. call  up raid after it's been loaded resident and exited use  the 
  36. <5> key on the numeric pad without numlock.  Note:  When raid  is 
  37. resident it keeps interrupts 0,  1,  3,  6, 8, 9, 20, 21, 22, 23, 
  38. and 24 vectored to itself.  Avoid running programs that also trap 
  39. these. There will also be about a 48k reduction in free ram.
  40.  
  41.  
  42.             To load RAID resident enter:
  43.  
  44.                          RAID +R
  45.  
  46.             Note: A filename and arguments may follow the +r.
  47. .pa
  48.                            >>> Commands <<<
  49.  
  50.  
  51.  
  52.  
  53.  
  54.      Raid  commands  are  available after  typing  <F1>.  Several 
  55. commands  that  are  commonly used are definded  as  control  and 
  56. function  keys.  The function and control key definitions are  in 
  57. the command summary section.
  58.  
  59.      Commands  are selected using a nested  tree  structure.  The 
  60. escape  key will remove you from the command tree.  Or if not  in 
  61. the  command  tree will display the function key settings on  the 
  62. second display line.
  63.  
  64.      Once the <F1> has been depressed the first display line will 
  65. show  a  list  of subjects.  The second line will  show  all  the 
  66. subject's options.  To select a different subject use the  cursor 
  67. keys  or  the space bar.  Once the subject wanted is  highlighted 
  68. press  the return key.  If the selection is already  know  simply 
  69. enter  the first letter of the subject.  This may go on for  many 
  70. levels  until  a specific command is reached.  At this point  the 
  71. second line will display a brief description of what action  will 
  72. take place.
  73.  
  74.      Some  commands require data from the user.  In this case the 
  75. user  will be prompted on the first line with the description  on 
  76. the  second line of the display.  After the prompt arguments  are 
  77. entered they must be followed by a return.  Commands that require 
  78. multiple  arguments must have arguments seperated by a  space  or 
  79. comma.
  80.  
  81. .pa
  82.                          >>> WINDOWS <<<
  83.  
  84.  
  85.  
  86.  
  87.  
  88.      Raid uses windows for viewing and modifing various data. The 
  89. windows are named BREAKPOINT, CPU, DATA, PROGRAM, STACK, SYMBOLS, 
  90. and 6301. Only one window may be active at a time. To change from 
  91. window to window use the <F4> key. To go directly to a window use 
  92. the following:
  93.  
  94.           <F1> W C B     -or-      CTRL-B      for BREAKPOINT
  95.           <F1> W C C     -or-      CTRL-C      for CPU
  96.           <F1> W C D     -or-      CTRL-D      for DATA
  97.           <F1> W C P     -or-      CTRL-P      for PROGRAM
  98.           <F1> W C S     -or-      CTRL-S      for STACK
  99.           <F1> P S L                           for SYMBOL
  100.           <F1> W C 6     -or-      CTRL-P <F4> for 6301
  101.  
  102.  
  103.  
  104.      When  a  window is active the window name is highlighted  in 
  105. reverse video. The current item in the window is also highlighted 
  106. in  reverse video.  To change the current selected item  use  the 
  107. cursor keys. To scroll the window a line at a time use the cursor 
  108. keys. To scroll the window a page at a time use the PgUp and PgDn 
  109. keys. 
  110.  
  111.  
  112.  
  113.      To set the window orgin address (start address of window) to 
  114. a  desired  value enter the value followed by the <F2>  key.  The 
  115. orgin may also be changed by the <F1> W A command.
  116.  
  117.  
  118.  
  119.      To change from data or text in the DATA window use the  <F3> 
  120. key. Or to change the stack direction in the STACK window use the 
  121. <F3> key. In all other windows <F3> will be ignored.
  122.  
  123.  
  124.  
  125.      To  change  data  in a window simply type the new  data  and 
  126. press the return key.
  127.  
  128.  
  129.  
  130.      Raid  displays  all windows on one screen except the  symbol 
  131. window.  The  SYMBOL window requires a screen of it's  own.  When 
  132. viewing  the SYMBOL window as escape key will return you  to  the 
  133. others.  The  6301 window will be available only if the  computer 
  134. model is a KAYPRO 2000 (The Flexy).
  135.  
  136.  
  137.           BREAKPOINT window:
  138.  
  139.           The  breakpoint window displays the status and  setting 
  140.      of  the permanet breakpoints.  It also allows the setting of 
  141.      breakpoints.  The breakpoints are numbered 0:  thru 9:.
  142.  
  143.           The  breakpoint viewed in the window may be selected  by 
  144.      entering  the   breakpoint  number  and  pressing  <F2>   or       
  145.      with  the <F1> W A command.  To scroll thru the  breakpoints 
  146.      use the PgUp and PgDn or cursor keys.
  147.  
  148.           If  a 'D' follows the breakpoint number the  breakpoint 
  149.      is disabled.  The address,  count, type and condition of the 
  150.      breakpoint  is  also  displayed.  If the breakpoint  is  not 
  151.      assigned then 'CLEAR' is displayed in the window. 
  152.  
  153.           The  address is displayed as segment:offset.  The count 
  154.      is displayed as a word hex value.  Count of 1 means break on 
  155.      the  first  time.  The type is displayed as 'Stop',  'Enable 
  156.      #', 'Disable  #', or 'Call segment:offset'. The condition is 
  157.      displayed as  it was entered. (Such as AX<>0).
  158.  
  159.           When  a breakpoint is encountered the BREAKPOINT window 
  160.      will select that breakpoint.  For example if breakpoint 7 is 
  161.      used then the window will display breakpoint 7.  Breakpoints 
  162.      reached in a programs or breakpoint numbers used in commands 
  163.      will cause this action.
  164.  
  165.           To set a breakpoint enter the specification followed by      
  166.      return. (See BREAKPOINT section for more information).
  167.  
  168.  
  169. .pa
  170.           CPU window:
  171.  
  172.           The  CPU  window  displays all  machine  registers  and 
  173.      flags.  To  change  the value position the current item over 
  174.      the  register  or  flag  value  to  be  changed,  enter  the 
  175.      expression to be placed and press return.
  176.  
  177.           Values  entered  in the flags must be  0  or  1.  Since 
  178.      conditional  expressions generate these they can be used  to 
  179.      set  flags.  For example:  AX<>CX would set a flag if AX was 
  180.      not equal to CX,  else if they were equal the flag would  be 
  181.      reset.  Expressions can also generate 0 or 1 and can even be 
  182.      used to copy flags. For example: FLC&FLI would set a flag if 
  183.      the  carry and interrupt flags were on,  else the flag would 
  184.      be  reset.  If  values other than 0 and 1 are  attempted  an 
  185.      error is issued.
  186.  
  187.           The  CPU  window  will not accept an orgin  address  or 
  188.      scroll.  If  an attempt is made to move the item out of  the 
  189.      window wraparound will occur.  Scroll keys are  ignored.  An 
  190.      attempt to set an orgin address will result in an error.
  191. .pa
  192.           DATA window:
  193.  
  194.           The  DATA  window  displays  40 bytes of  memory  in  a 
  195.      specified format and the ascii text.  If the ascii character 
  196.      cannot be displayed then a diamond is displayed insted.  The 
  197.      format of the data displayed defaults to bytes.  This can be 
  198.      changed by using the following commands:
  199.  
  200.  
  201.                <F1> F D A     Display data in address form.
  202.  
  203.                <F1> F D B     Display data in byte form.
  204.  
  205.                <F1> F D L     Display data in long form.
  206.  
  207.                <F1> F D W     Display data in word form.
  208.  
  209.  
  210.           Data  entry  may  be done  in  hexadecimal  (addresses, 
  211.      bytes,  long,  or words) or ascii. To change from one to the 
  212.      other use the <F3> key.  In either mode to select an item to 
  213.      be changed position the highlight over it. Then if using the 
  214.      ascii mode enter the ascii characters to be stored  followed 
  215.      by  a return.  If using the hexadecimal mode enter a list of 
  216.      Addresses,  bytes,  long  intergers,  or words.  A  list  is 
  217.      defined  as  one or more expressions seperated by commas  or
  218.      spaces followed by a return.
  219.  
  220.  
  221.           List examples:
  222.  
  223.                Address format: cs:145,2378,1256:76c9
  224.  
  225.                Byte format:    12,d4,'a','b',12*3,al,{si}
  226.  
  227.                Long format:    1234:5678 (Means 12345678)
  228.                                Long  intergers must be entered  in 
  229.                                address form.
  230.  
  231.                Word format:    1234,'sd','a',132*4,ax,[es:bx]
  232.  
  233.  
  234.           As  things  in  memory  change  the  DATA  window  will      
  235.      reflect  the  change real time.  For example  set  the  DATA      
  236.      window  address  to  40:40 and watch  the  timer  tic.  When      
  237.      setting the DATA window to the video display area the screen      
  238.      will  look  very 'noisy'.  This is from the video ram  being           
  239.      access during the trace and is normal.
  240.  
  241.           On  a  break  the  DATA window  will  show  DS:0.  When 
  242.      specifing  a new address for the DATA window if the  segment 
  243.      is omitted DS will be assumed.
  244.  
  245. .pa
  246.           PROGRAM window:
  247.  
  248.           The  program window displays the  disassembled  program 
  249.      and allows inline assembly. To change an item in the program 
  250.      window  position  the  highlight  over  the  instruction  to 
  251.      change.  Then enter the new assemble instruction followed by 
  252.      a return.
  253.  
  254.           Instructions  that  are  'abnormal' will  be  shown  in 
  255.      brown.  Instructions  that  are breakpoint will be shown  in 
  256.      blue. Symbolic labels will be shown in red and followed by a 
  257.      colon. An arrow preceding the address means this instruction 
  258.      will  be executed next (Instruction Pointer).  An  asterisks 
  259.      following the address means this is a temporary breakpoint.
  260.  
  261.           When   an   instruction  that  references   memory   is 
  262.      highlighted the effective address and contents is  displayed 
  263.      on the second line.
  264.  
  265.           When  the  size  of  an  operand  is  not  obvious  the 
  266.      disassembler will use 'BYTE PTR' and 'WORD PTR' prefixs. The 
  267.      assembler accepts these prefixs.  If the operand size is not 
  268.      obvious and a prefix is not used 'BYTE PTR' is assumed. When 
  269.      immediates  are  used 2 hexadecimal digits refer to  a  byte 
  270.      while four refer to a word.
  271.  
  272.           Segment  overides  are disassembled on a seperate  line 
  273.      and must be entered as such with the assembler.
  274.  
  275.           The   mnemonic  for  a  far  return   is   RETF.   Jump 
  276.      instructions  are coded SHORT,  NEAR,  and FAR automatically 
  277.      but may be overode using SHORT, NEAR, or FAR prefixes.
  278.  
  279.           String  instructions  must  specify  the  size  in  the 
  280.      mnemonic.  MOVS cannot be used,  MOVSB for byte or MOVSW for 
  281.      word can.
  282.  
  283.           Addresses (even symbolic ones) are always displayed  in 
  284.      brackets.  The assembler expects this syntax.  If an address 
  285.      is  not  placed  in  brackets it will be  interpeted  as  an 
  286.      immediate value by the parser.
  287.  
  288.           All opcode synonyms are supported by the assembler. The 
  289.      disassembler  however  will  chose which  one  to  use.  The 
  290.      disassembler uses the following:  SHL,  REPNZ,  REPZ, LOOPZ, 
  291.      LOOPNZ,  JO,  JNO,  JC,  JNC, JZ, JNZ, JBE, JA, JS, JNS, JP, 
  292.      JNP, JL, JGE, and JLE.
  293.  
  294.           The  exchange AX with AX instruction is  assembled  and 
  295.      disassembled  as  NOP.   Of  course  XCHG  AX,AX  will  also 
  296.      assemble as NOP.
  297.  
  298.           Undefined  instructions  will disassemble as DB  or  DW 
  299.      depending if 1 or 2 bytes are invalid.
  300.  
  301.           The following mnemonics are recognized by Raid:
  302.  
  303.  
  304.  
  305.                         >>>>>  Instructions <<<<<
  306.  
  307.  
  308.                AAA       AAD       AAM       AAS       ADC
  309.                ADD       AND       CALL      CBW       CLC
  310.                CLD       CLI       CMC       CMP       CMPSB
  311.                CMPSW     CWD       DAA       DAS       DEC
  312.                DIV       ESC       HLT       IDIV      IMUL
  313.                IN        INC       INT       INTO      IRET
  314.                JA        JAE       JB        JBE       JC
  315.                JCXZ      JE        JG        JGE       JL
  316.                JLE       JMP       JNA       JNAE      JNB
  317.                JNBE      JNC       JNE       JNL       JNLE
  318.                JNG       JNGE      JNO       JNP       JNS
  319.                JNZ       JO        JP        JPE       JPO
  320.                JS        JZ        LAHF      LDS       LEA
  321.                LES       LOCK      LODSB     LODSW     LOOPE
  322.                LOOPNE    LOOPNZ    LOOPZ     MOV       MOVSB
  323.                MOVSW     MUL       NEG       NOP       NOT
  324.                OR        OUT       POP       POPF      PUSH
  325.                PUSHF     RCL       RCR       REPE      REPNE
  326.                REPNZ     REPZ      RET       RETF      ROL
  327.                ROR       SAHF      SAL       SAR       SBB
  328.                SCASB     SCASW     SHL       SHR       STC
  329.                STD       STI       STOSB     STOSW     SUB
  330.                TEST      WAIT      XCHG      XLAT      XOR
  331.  
  332.  
  333.  
  334.                       >>>>>  Segment overides <<<<<
  335.  
  336.  
  337.                          CS:    DS:    ES:   SS:
  338.  
  339.  
  340.  
  341.                          >>>>>  Registers <<<<<
  342.  
  343.  
  344.                AX, BX, CX, DX, BP, DI, SI, SP, SS, CS, DS, ES
  345.                AH, AL, BH, BL, CH, CL, DH, DL
  346.  
  347.  
  348.  
  349.                           >>>>> Prefixes <<<<<
  350.  
  351.  
  352.                  SHORT, NEAR, FAR, BYTE PTR, WORD PTR
  353.  
  354.  
  355.  
  356.                The  radix of immediate values disassembled may be 
  357.      changed  by  the <F1> F R x commands where x refers  to  the 
  358.      radix.   Binary,  decimal,  hexadecimal,  or  octal  may  be 
  359.      selected. The following shows each command:
  360.  
  361.                     <F1> F R B     Display in binary
  362.  
  363.                     <F1> F R D     Display in decimal
  364.  
  365.                     <F1> F R H     Display in hexadecimal
  366.  
  367.                     <F1> F R O     Display in octal
  368.  
  369.  
  370.                Symbol  types  are looked at  during  disassemble. 
  371.      Symbols defined as byte will be disassembled (For the symbol 
  372.      length)  as DBs.  Symbols defined as constants will  replace 
  373.      any immediate value.  Symbol defined as labels or  addresses 
  374.      will replace any reference or address.
  375.  
  376.                Disassemble to disk can be done using the <F1> D D 
  377.      command.  (See Disk section).
  378.  
  379.                The CTRL-N key will set the Instruction Pointer to 
  380.      the current selected item in the PROGRAM window.
  381. .pa
  382.           STACK window:
  383.  
  384.           The STACK window displays the contents of the stack and 
  385.      allows  changes  to the stack contents.  To change  a  stack 
  386.      value position the highlight over the item to change,  enter 
  387.      the new value and press return.
  388.  
  389.           The stack order may be reversed by using the <F3>  key. 
  390.      From incrementing to decrementing and vice versa.
  391.  
  392.           An arrow before the address indicates the stack pointer.
  393.  
  394.           The stack upon a program break starts at SS:SP.
  395.  
  396.           The  stack window could be used as another data  window 
  397.      for words only but on a program break will return to a stack 
  398.      display.  To do this use <F1> W A or <F2>, the <F3> key also 
  399.      so the addresses are incrementing.
  400. .pa
  401.                        >>> EXPRESSIONS <<<
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.      Raid  values  may  be entered as hexadecimal  values  or  as 
  409. expressions. Expressions contain operands and operators. Operands 
  410. may be constants(binary, decimal, hexadecimal, or octal), machine 
  411. register mnemonics, machine flag mnemonics, memory contents (byte 
  412. or word),  quoted characters,  or symbols.  Operators are  unary, 
  413. conditional, arithmetic, or logical.
  414.  
  415.  
  416.  
  417.      Expressions  may be evaluated by the <F1> E command followed 
  418. by  the  expression  to evaluate.  The  expression  may  also  be 
  419. evaluated  if followed by the <F8> key.  The evaluated expression 
  420. is displayed on the 2nd display line in binary,  decimal,  octal, 
  421. and hexadecimal.
  422.  
  423.  
  424.  
  425.      Conditional  expressions are helpful in breaking  a  program 
  426. under  a  certain  circumstance.  For example break  if  ds:[123] 
  427. changed, or when the carry flag goes on, ect...
  428.  
  429.  
  430.  
  431.      Nesting  of parenthesis may be done.  They may be nested  16 
  432. levels   deep.   Expression  are  processed  left  to  right   so 
  433. parenthesis are often needed. If the parenthesis mismatch then an 
  434. error will be issued.
  435.  
  436.  
  437.  
  438.      Division  by  zero is not allowed.  If this occurs an  error 
  439. will  be  issued.  If  a division by zero is done  in  a  running 
  440. program it will be trapped by Raid and an error issued.
  441.  
  442.  
  443.  
  444.           Examples of expressions:
  445.  
  446.                     AX
  447.  
  448.                     SI+BX/7
  449.  
  450.                     123*(BX/3)
  451.  
  452.                     FLC|FLO=0
  453.  
  454.                     [DS:BX+SI-18]<>SYMBOL
  455.  
  456.           Unary operators:
  457.  
  458.                +         Positive
  459.                -         Negitive  (2's complement)
  460.                ~         Complement (1's complement)
  461.  
  462.  
  463.  
  464.           Conditional operators:
  465.  
  466.                =         Equal to
  467.                <>        Not equal to
  468.                >         Greater than
  469.                <         Less than
  470.                >=        Greater than or equal to / Not less than
  471.                <=        Less than or equal to / Not greater than
  472.  
  473.  
  474.  
  475.           Arithmetic operators:
  476.  
  477.                +         Addition
  478.                -         Subtraction
  479.                *         Multiplication
  480.                /         Division
  481.                %         Remainer
  482.  
  483.  
  484.  
  485.           Logical operators:
  486.  
  487.                &         And
  488.                |         Or
  489.                \<        Shift left
  490.                \>        Shift Right
  491.                ()        Precedence
  492.  
  493.  
  494.  
  495.      Notes:
  496.  
  497.           Using  operator combinations many useful functions  can           
  498.      be  derived.  Operators  may be mixed in  any  fashion.  The 
  499.      following would be used to complete the boolean functions:
  500.  
  501.  
  502.                NAND      ~(<opr1>&<opr2>)
  503.  
  504.                NOR       ~(<opr1>|<opr2>)
  505.  
  506.                EXOR      ~((<opr1>&<opr2>)|~(<opr1>|<opr2>))
  507.  
  508.                EXNOR     (<opr1>&<opr2>)|~(<opr1>|<opr2>)
  509.  
  510.  
  511.           Hexadecimal constants:
  512.  
  513.                Hexadecimal constants may be entered as is without 
  514.           a   leading zero even if the leading digit  is  between 
  515.           'a'  and  'f'.  This can be troblesom if a  symbol  for 
  516.           example  is named 'face'.  In this case 0face would  be 
  517.           used  for a constant and face for the symbol.  Entering 
  518.           long constants (double words) must be done as  entering 
  519.           an  address.  For example 12345678 would be entered  as 
  520.           1234:5678.
  521.  
  522.  
  523.  
  524.           Binary constants:
  525.  
  526.                Binary constants must be preceeded by a '^B'.  For 
  527.           example ^B1101 would enter 0dh.
  528.  
  529.  
  530.  
  531.           Decimal constants:
  532.  
  533.                Decimal constants must be preceeded by a '^D'. For 
  534.           example ^D13 would enter 0dh.
  535.  
  536.  
  537.  
  538.           Octal constants:
  539.  
  540.                Octal  constants must be preceeded by a '^O'.  For 
  541.           example ^O15 would enter 0dh.
  542.  
  543.  
  544.  
  545.           Machine register mnemonics:
  546.  
  547.                All 16 bit registers are supported:
  548.  
  549.                     AX, BX, CX, DX, SI, DI, BP, SP
  550.  
  551.                All segments registers are supported:
  552.  
  553.                     CS, DS, ES, SS
  554.  
  555.                Control registers are supported:
  556.  
  557.                     IP and FL
  558.                     (Instruction Pointer and FLag register)
  559.  
  560.                All 8 bit registers are supported:
  561.  
  562.                     AL, AH, BL, BH, CL, CH, DL, DH
  563.  
  564.  
  565.  
  566.           Machine flag mnemonics:
  567.  
  568.                FLT       Trap flag
  569.                FLA       Aux carry flag
  570.                FLC       Carry flag
  571.                FLP       Parity flag
  572.                FLS       Sign flag
  573.                FLZ       Zero flag
  574.                FLD       Direction flag
  575.                FLI       Interrupt flag
  576.                FLO       Overflow flag
  577.  
  578.  
  579.  
  580.           Quoted characters:
  581.  
  582.                ASCII  values may be specified in  quotes.  Single 
  583.           quotes  may be placed in double quotes and vice  versa. 
  584.           If  2  charaters are specifed for a word they  will  be 
  585.           reversed (as normal) when hi/lo bytes are stored.
  586.  
  587.  
  588.  
  589.           Memory contents:
  590.  
  591.                The  contents of memory locations are specified by 
  592.           placing  the  address in brakets(for  word  values)  or 
  593.           braces(for   byte   values).   The  address   may   use 
  594.           expressions. If the address segment is omitted then the 
  595.           data segment value is used.
  596.  
  597.                     {1234}              ;Byte at DS:[1234]
  598.  
  599.                     {es:bx+si}          ;Byte at ES:[BX+SI]
  600.  
  601.                     [ss:34]             ;Word at SS:[34]
  602.  
  603.  
  604.  
  605.           Symbols:
  606.  
  607.                Symbols  are  used  as addresses  when  placed  in 
  608.           brakets  or  braces unless the symbol is defined  as  a
  609.           constant.  If  this  occurs then ds:  is used  for  the 
  610.           segment  and  the constant value as  the  offset.  When 
  611.           symbols  are used as constants and not defined as  such 
  612.           then  the symbols offset is used.  Symbol names are not 
  613.           restricted so care must be taken not to define a symbol 
  614.           as a cpu register mnemonic,  ect... Also if a symbol is 
  615.           defined  as  a hexadecimal number then a  leading  zero 
  616.           must  be  used to distingish the two  (See  Hexadecimal 
  617.           numbers).
  618.  
  619.  
  620.  
  621.           Conditional expressions:
  622.  
  623.               A condition is said to be true if it equates to not 
  624.           zero.  When  using  conditional operators  they  return           
  625.           zero if false or one if true.
  626.  
  627.  
  628.                     FLC       True if carry flag is set
  629.  
  630.                     AX        True if AX <> 0
  631.  
  632.                     [SI]=123  True if word at ds:[si] = 0123
  633.  
  634.                     FLA|FLC   True if aux carry or carry set
  635.  
  636.                     FLA&FLC   True if aux carry and carry set
  637.  
  638.  
  639.  
  640.           Notes:
  641.  
  642.                Logical   operations  can  be  used  in  math   or 
  643.           relations.
  644.  
  645.                     ((AX&8000h)=0)&FLO
  646.  
  647.                The  above  is true if AX sign bit is off and  the 
  648.                overflow flag is set.
  649. .pa
  650.  
  651.                           >>> BREAKPOINT <<<
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Raid  has extremly powerful breakpoint facilitys.  There are 
  658. up  to  ten  permanent  breakpoints  and  up  to  ten   temporary 
  659. breakpoints.  The  temporary breakpoints are used simply to  stop 
  660. the  program at a given point.  The permanent breakpoints allow a 
  661. user to select what condition the break should be taken and  what 
  662. action  should be done.  Such as stop the program when the  carry 
  663. flag is set at point cs:1245.
  664.  
  665.      Once a breakpoint is taken all the temporary breakpoints are 
  666. removed. (That's why there called temporary).
  667.  
  668.      Once  a  permanent  breakpoint is taken it  is  disabled  so 
  669. execution  may  continue.   Disabled  means  all  the  breakpoint 
  670. specifications are 'remembered' but the breakpoint is not active. 
  671.  
  672.      To  enable a permanent breakpoint once disabled use the <F1> 
  673. B E command.  To disable a permanent breakpoint use the <F1> B  D 
  674. command.
  675.  
  676.      Temporary breakpoints are set by positioning the item in the 
  677. program window to the instruction where the breakpoint should  be 
  678. set.  Then  issue  a <F1> B T command or press  <F10>.  Temporary 
  679. breakpoints are flaged in the program window by an asterisks  (*) 
  680. following  the  address.  If a temporary breakpoint needs  to  be 
  681. removed do the same. These commands toggle the breakpoint not set 
  682. it.
  683.  
  684.      To  set  a  permanent  breakpoint the <F1> B  S  command  or 
  685. selecting the BREAKPOINT window may be used.
  686.  
  687.      To clear a permanent breakpoint use the <F1> B C command. To 
  688. clear all permanent breakpoints use the <F1> B I command.
  689.  
  690.      Permanent breakpoints may have a count specified. This means 
  691. the breakpoint will not be active until executed count times. The 
  692. default count is 1 (The first time).
  693.  
  694.      Permanent breakpoints may be conditional.  A condition given 
  695. to  a breakpoint must be true for the breakpoint to  break.  (See 
  696. conditional expressions in the expressions section).
  697.  
  698.      Permanent breakpoints have an action specified.  The default 
  699. action  is STOP.  Other functions are ENABLE another  breakpoint, 
  700. DISABLE another breakpoint, or CALL a user routine.
  701.  
  702.      The  user routine for permanent breakpoints should end  with 
  703. an IRET instruction.
  704.  
  705.  
  706.           <F1> Breakpoint Clear command:
  707.  
  708.           The  <F1> B C command removes a  permanent  breakpoint. 
  709.      Breakpoints  can be disabled without removal with the <F1> B 
  710.      D  command.  To clear(remove) all permanent breakpoints  use 
  711.      the <F1> B I command.
  712.  
  713.           The user will be prompted:
  714.  
  715.                'Enter breakpoint number to clear:'
  716.  
  717.           The response must be a valid breakpoint number (0  thru 
  718.      9). If not no action will occur and an error will be issued.
  719.  
  720.  
  721.  
  722.           <F1> Breakpoint Disable All command:
  723.  
  724.           The  <F1>  B  D A command will  disable  all  permanent 
  725.      breakpoints.   They   will  remain  inactive  until  enabled      
  726.      with <F1> B E command. Note: Breakpoints can also be enabled 
  727.      by other breakpoints. Disabled breakpoints are flaged in the  
  728.      BREAKPOINT window by a 'D' following the breakpoint number.
  729.  
  730.  
  731.  
  732.           <F1> Breakpoint Disable Single command:
  733.  
  734.           The  <F1>  B  D S command will  disable  one  permanent 
  735.      breakpoint. The breakpoint will remain inactive until a <F1> 
  736.      B  E command is issued or another breakpoint enables  it.  A 
  737.      'D'  will  be shown in the BREAKPOINT window  following  the 
  738.      breakpoint number to indicate it's disabled.
  739.  
  740.           The user will be prompted:
  741.  
  742.                'Enter breakpoint number to disable:'
  743.  
  744.           The  response must be a valid breakpoint number (0 thru 
  745.      9). If not no action will occur and an error will be issued.
  746.  
  747.  
  748.  
  749.           <F1> Breakpoint Enable All command:
  750.  
  751.           The  <F1>  B  E  A command will  enable  all  permanent 
  752.      breakpoints.  To  disable  a  breakpoint use the  <F1>  B  D 
  753.      command.  To enable specific breakpoints use the <F1> B E  S 
  754.      command.
  755.  
  756.  
  757. .pa
  758.           <F1> Breakpoint Enable Single command:
  759.  
  760.           The  <F1>  B  E  S  command  will  enable  a  permanent 
  761.      breakpoint.   The  breakpoint  will  then  be  active  until 
  762.      disabled by a <F1> B D command or the breakpoint is taken.
  763.  
  764.           The user will be prompted:
  765.  
  766.                'Enter breakpoint number to enable:'
  767.  
  768.           The  responce must be a valid breakpoint number (0 thru 
  769.      9).  If  not  no action will be taken and an error  will  be 
  770.      issued. Press return only for breakpoint 0.
  771.  
  772.  
  773.  
  774.           <F1> Breakpoint Initialize command:
  775.  
  776.           The  <F1>  B I command removes (clears)  all  permanent 
  777.      breakpoints.  To disable all breakpoints insted of  clearing 
  778.      use the <F1> B D A command.  To set breakpoints use the <F1> 
  779.      B S command.
  780.  
  781.  
  782.  
  783.  
  784.           <F1> Breakpoint Set command:
  785.  
  786.           The   <F1>  B  S  command  is  used  to  set  permanent 
  787.      breakpoints.  To  disable a set breakpoint use the <F1> B  D 
  788.      command.  To  clear  (remove) a breakpoint use the <F1> B  C 
  789.      command.  To  set temporary breakpoints (or remove them) use 
  790.      the <F1> B T command or the <F10> key.
  791.  
  792.  
  793.           Upon entering <F1> B S the user will be prompted:
  794.  
  795.               'Enter brkpnt number [,addr [,count [,type [,cond]]]]:'
  796.  
  797.  
  798.           The responce must be a valid breakpoint number (default 
  799.      is  breakpoint  0) from 0 thru 9.  
  800.  
  801.  
  802.           The address (default is highlighted address in  PROGRAM 
  803.      window)  is  entered as segment:offset.  If the  segment  is 
  804.      omitted then CS:  is used. If the address is does not matter 
  805.      and  a certain condition is what is wanted use the <F1> P  T 
  806.      command.
  807.  
  808.  
  809.           The  count  (default  is 0001) is entered  as  a  word. 
  810.      Meaning  a value from 0001h to 0ffffh.  The count refers  to 
  811.      how  many times the address must be reached before an action 
  812.      is taken. If zero is specified then 0001 will be used.
  813.           The  type  (default  is Stop) is entered  as  a  single 
  814.      character. The options are Disable, Call, Enable, and Stop.
  815.  
  816.           The  Disable  type  must be followed  by  a  breakpoint 
  817.      number to be disabled upon break.
  818.  
  819.           The Call type must be followed by an address of a  user 
  820.      routine to be called upon break.
  821.  
  822.           The Enable type must be followed by a breakpoint number 
  823.      to be enabled upon break.
  824.  
  825.           The Stop type simply stops the program upon break.
  826.  
  827.  
  828.           The  condition  (default is none) may be  specified  so 
  829.      that  the  breakpoint  will  do  it's  action  only  if  the 
  830.      specified  condition is true.  See condition expressions  in 
  831.      the expressions sections for details.
  832.  
  833.  
  834.  
  835.           <F1> Breakpoint Temporary command:
  836.  
  837.           The   <F1>   B  T  command  will  toggle  a   temporary 
  838.      breakpoint.  The current highlighted address in the  PROGRAM 
  839.      window  will  be  toggled  set and  reset.
  840.  
  841.           If  a temporary breakpoint is set an asterisks (*)  will 
  842.      be displayed to the right of the address.
  843.  
  844.           The <F10> key has the same function.
  845.  
  846.           When  a breakpoint  (permanent or  temporary is  taked) 
  847.      all temporary breakpoints are reset.
  848.  
  849.           Up to ten temporary breakpoints may be set at a time.
  850. .pa
  851.                               >>> DISK <<<
  852.  
  853.  
  854.  
  855.  
  856.  
  857.           Raid has extensive disk commands.  Disk I/O can be done 
  858.      using physical sectors,  logical sectors or files.
  859.  
  860.           Features  to  load  a   program   for   debugging   and 
  861.      disassembling a file to disk are also included.
  862.  
  863.  
  864.           File  specification may include full path specification 
  865.      except for the disk disassembler.
  866.  
  867.  
  868.           Sectors may be specified as relative or as head, track, 
  869.      and sector.  Relative is refers to as logical.  Head, track, 
  870.      and sector is a physical specification.
  871.  
  872.  
  873.           Extensive  error  trapping  is used incase  of  an  I/O 
  874.      error.  Hardware  problems  are  displayed  in  an  easy  to 
  875.      understand  manner.  Software problems or DOS  failures  are 
  876.      displayed in the following form:
  877.  
  878.                <error that occured> failure occured at <address>
  879.                Interrupt xxh, function xxh
  880.                Device: x:, Device header is at <address>
  881.  
  882.                Abort, Ignor, or Retry?
  883.  
  884.           In responce to the above:
  885.  
  886.                Abort:    Return to raid
  887.                Ignor:    Continue with error
  888.                Retry:    Try function again
  889.  
  890.  
  891.           Use  the <F1> D G and <F1> D P commands for sector disk 
  892.      I/O.   These   commands  use  logical  or  physical   sector 
  893.      numbering.
  894.  
  895.  
  896.           For file I/O use the <F1> D N command to specify a file 
  897.      and <F1> D R to read and <F1> D W to write it.
  898.  
  899.  
  900.           To load a(nother) program for debugging use the <F1>  D 
  901.      L command.
  902.  
  903.  
  904.           To disassemble a file to disk use the <F1> D D command.
  905.           <F1> Disk Disassemble command:
  906.  
  907.  
  908.           The  <F1> D D command disassembles a program to a  disk 
  909.      file.
  910.  
  911.  
  912.           If  symbols  are  defined  they  will be  used  in  the 
  913.      disassemble.
  914.  
  915.  
  916.           See  program window in the windows sections  for   more      
  917.      details on the disassembler.
  918.  
  919.  
  920.           The user will be prompted:
  921.  
  922.                'Enter filename.ext [,starting address [,count]]:'
  923.  
  924.           Enter  a file specification for the output to be named. 
  925.      Paths are not accepted.
  926.  
  927.           The  starting address (default is CS:IP) is  where  the 
  928.      disassemble   will   start.   The  address  is  entered   as 
  929.      segment:offset.  If the segment is omitted then CS:  will be 
  930.      used.
  931.  
  932.           The count is entered as a word from 1 to 0ffffh. If the 
  933.      count is omitted then the count will default to the size  of 
  934.      the last file loaded for debugging.
  935.  
  936.           It  is possible for a few more bytes to be disassembled 
  937.      than specified. If the byte count is reached mid-instruction 
  938.      then the count will go over because that instruction will be 
  939.      completly disassembled.
  940.  
  941.  
  942.                (Example output)
  943. .pa
  944.           <F1> Disk Get Logical command:
  945.           
  946.           The  <F1> D G L command will read one or  more  sectors 
  947.      from  the disk into memory.
  948.  
  949.  
  950.           For  disk editing sectors can be read in,  edited using 
  951.      the  DATA  window,  and  wrote back using the  <F1>  D  P  L 
  952.      command.
  953.  
  954.  
  955.           If specifing head,  track, and sector is more desirable 
  956.      use the <F1> D G P command.
  957.  
  958.  
  959.           The user will be prompted:
  960.  
  961.                'Enter address, sector, count, drive:'
  962.  
  963.           The  address  is  entered  as  segment:offset.  If  the 
  964.      segment is not specified then DS: is used.
  965.  
  966.           The sector is a 'relative sector' number.  Meaning that 
  967.      all sectors on the disk are numbered sequential. For example 
  968.      physical  sector:  track  0,  sector 1,  head 0 is  relative 
  969.      sector: sector 0.
  970.  
  971.           The count is a word that refers to how many sectors are 
  972.      to be sequentially read into memory.
  973.  
  974.           The  drive is entered as a single character  optionally 
  975.      followed by a colon refering to the drive name. For example: 
  976.      A:.
  977.  
  978.  
  979.  
  980.           <F1> Disk Get Physical command:
  981.  
  982.           The  <F1>  D G P command will read one or more  sectors 
  983.      from the disk into memory.
  984.  
  985.  
  986.           This  command  is identical to the <F1> D G  L  command 
  987.      except that sectors are specified by head, track, and sector 
  988.      rather that relative sectors.
  989.  
  990.  
  991.           The user will be prompted:
  992.  
  993.           'Enter address, head, track, sector, count, drive:'
  994.  
  995.           The syntax is the same as the <F1> D G L command except 
  996.      the head and track values must be entered.
  997.  
  998.  
  999.           <F1> Disk Load command:
  1000.  
  1001.           The  <F1>  D L command load a file for  debugging.
  1002.  
  1003.  
  1004.           If a .SYM file is found in the same path with the  same 
  1005.      filename  then  it is loaded into the symbol table.  If  the 
  1006.      .SYM file is not a RAID .SYM file it may cause problems.  To 
  1007.      remove an invalid .SYM file use the <F1> P S I command.
  1008.  
  1009.  
  1010.           Path and drive specifications are valid.
  1011.  
  1012.  
  1013.           Extentions (Even if .COM or .EXE) must be specified.
  1014.  
  1015.  
  1016.           .EXE  files are detected by a valid .EXE format not the 
  1017.      extention name itself.
  1018.  
  1019.  
  1020.           The  size  of the file is saved for the  default  count 
  1021.      when using the <F1> D W command.
  1022.  
  1023.  
  1024.           The  file specification is saved for the  default  name 
  1025.      used  for  the <F1> D R and <F1> D W commands.  This can  be 
  1026.      changed with the <F1> D N command.
  1027.  
  1028.  
  1029.           Window pointers are set  to:  BREAKPOINT=0,  DATA=DS:0, 
  1030.      PROGRAM=CS:IP, and STACK=SS:SP.
  1031.  
  1032.  
  1033.           For .COM files IP=0100h,  SP=0FFFEh, CS=DS=ES=SS, and 0 
  1034.      is pushed on the stack.
  1035.  
  1036.  
  1037.           For  .EXE files all values are passed from the  linker. 
  1038.      Ones  that  are not are computed so the .EXE file  will  run 
  1039.      properly  under  raid.  All relocation is taken care  of  as 
  1040.      well.
  1041.  
  1042.  
  1043.           A program segment prefix is always built.
  1044.  
  1045.  
  1046.           The user will be prompted:
  1047.  
  1048.                'Enter file specification to load:'
  1049.  
  1050.           A  file  specification (paths may be included) must  be 
  1051.      entered.  If  the file is not found or an error  occurs  the 
  1052.      user will be informed.
  1053.  
  1054.           <F1> Disk Name command:
  1055.  
  1056.           The  <F1>  D  N  command  is used  to  specify  a  file 
  1057.      specification  to  be used with the <F1> D R and  <F1>  D  W 
  1058.      commands.
  1059.  
  1060.           Full  path specification may be used or a device  name. 
  1061.      For example: lpt1
  1062.  
  1063.           If the file is not found it is created.
  1064.  
  1065.  
  1066.  
  1067.           <F1> Disk Put Logical command:
  1068.  
  1069.           The  <F1> D P L command will write one or more  sectors 
  1070.      from memory to disk.
  1071.  
  1072.           USE EXTREME CAUTION USING THIS COMMAND ANY PLACE ON THE 
  1073.      DISK MAY BE DESTROYED IF THE USER WRITES IN THE WORNG PLACE!
  1074.  
  1075.           The user will be prompted:
  1076.  
  1077.                'Enter address, sector, count, drive:'
  1078.  
  1079.           The  address  is  entered  as  segment:offset.  If  the 
  1080.      segment is omitted then DS: is assumed.
  1081.  
  1082.           The sector is a relative sector number. (See <F1> D G L 
  1083.      command for the definition of a relitive sector).
  1084.  
  1085.           The count refers to a word that specifies the number of 
  1086.      sectors to be written.
  1087.  
  1088.           The  drive is entered as a single character  optionally 
  1089.      followed by a colon refering to the drive name. For example: 
  1090.      A:.
  1091.  
  1092.  
  1093.  
  1094.           <F1> Disk Put Physical command:
  1095.  
  1096.           The  <F1> D P P command will write one or more  sectors 
  1097.      from the disk into memory.
  1098.  
  1099.           The  command  is  identical to the <F1> D P  L  command 
  1100.      except that sectors are specified as head, track, and sector 
  1101.      rather than relative sectors.
  1102.  
  1103.           The user will be prompted:
  1104.  
  1105.           'Enter address, head, track, sector, count, drive:'
  1106.  
  1107.           The syntax is the same as the <F1> D P L command except 
  1108.      the head and track values must be entered.
  1109.           <F1> Disk Read command:
  1110.  
  1111.           The  <F1> D R command reads data into memory from a DOS 
  1112.      file.
  1113.  
  1114.           The file specification to read must have been specified 
  1115.      using the <F1> D N command.  If no previous <F1> D N command 
  1116.      has  issued  then  the name of last read or loaded  file  is 
  1117.      used. If no file has been loaded or read then 'RAIDFILE.COM' 
  1118.      is used.  Device input is doe if a device was specified with      
  1119.      the <F1> D N command.
  1120.  
  1121.           The user is prompted:
  1122.  
  1123.                'Enter address [, count [,offset]]:'
  1124.  
  1125.           The  address  is  entered  as  segment:offset.  If  the 
  1126.      segment is omitted then CS: is assumed.
  1127.  
  1128.           The  count is a word that refers to how many bytes  are 
  1129.      to be read.  If the count is not specified then the file  is 
  1130.      completly read.
  1131.  
  1132.           The  offset is a word that refers to the starting  byte 
  1133.      number to be read. The default is 0 (begining of file).
  1134.  
  1135.  
  1136.  
  1137.           <F1> Disk Write command:
  1138.  
  1139.           The  <F1> D W command writes data from memory to a DOS 
  1140.      file.
  1141.  
  1142.           The file specification to write must have been specified 
  1143.      using the <F1> D N command.  If no previous <F1> D N command 
  1144.      has  issued  then  the name of last read or loaded  file  is 
  1145.      used. If no file has been loaded or read then 'RAIDFILE.COM' 
  1146.      is used.  Device output is done if a device was specified in 
  1147.      the <F1> D N command.
  1148.  
  1149.           The user is prompted:
  1150.  
  1151.                'Enter address [, count [,offset]]:'
  1152.  
  1153.           The  address  is  entered  as  segment:offset.  If  the 
  1154.      segment is omitted then CS: is assumed.
  1155.  
  1156.           The  count is a word that refers to how many bytes  are 
  1157.      to be write. If a count is not specified then the numbers of 
  1158.      bytes last read or loaded is used. If no file has previously 
  1159.      been  loaded  or read and no count is specified then a  file 
  1160.      with length of 0 will be written.
  1161.  
  1162.           The  offset is a word that refers to the starting  byte 
  1163.      number to be written. The default is 0 (begining of file).
  1164.                             >>> EVALUATE <<<
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.           Raid   has   a   built  in  facility   for   evaluating 
  1171.      expressions.
  1172.  
  1173.           Enter  an expression followed by the <F8> key  and  the 
  1174.      result will be displayed.
  1175.  
  1176.  
  1177.           <F1> Evalute command:
  1178.  
  1179.           The <F1> E command is used to evaluate expressions.
  1180.  
  1181.           The user will be prompted:
  1182.  
  1183.                'Enter expression to evaluate:'
  1184.  
  1185.           The  expression  then  must be entered  followed  by  a 
  1186.      return.
  1187.  
  1188.  
  1189.           The   result   is   displayed   in   binary,   decimal, 
  1190.      hexadecimal, and octal.
  1191.  
  1192.           For more information see the expressions section.
  1193. .pa
  1194.                            >>> FORMAT <<<
  1195.  
  1196.  
  1197.  
  1198.  
  1199.           Raid  has  several formats available for ease  in  use. 
  1200.  
  1201.  
  1202.           Formats  are  divided into Data and Radix  types.
  1203.  
  1204.  
  1205.           The  Data types effect the data window display  format. 
  1206.      The  data in the window can be shown  as  addresses,  bytes, 
  1207.      long  intergers,  or  words.
  1208.  
  1209.                Forms:    Address   7856:3412
  1210.                          Byte      12 34 56 78
  1211.                          Long      78563412
  1212.                          Word      3412 7856
  1213.  
  1214.  
  1215.           The  Radix  types  effect the  disassembler  output  of 
  1216.      immediate  operands.  Immediate operands can be displayed in 
  1217.      binary, decimal, hexadecimal, or octal.
  1218.  
  1219.  
  1220.  
  1221.           <F1> Format Data Address command:
  1222.  
  1223.           The  <F1> F D A command changes the data window  format 
  1224.      to display and accept data in address form.
  1225.  
  1226.  
  1227.  
  1228.           <F1> Format Data Byte command:
  1229.  
  1230.           The  <F1> F D B command changes the data window  format 
  1231.      to display and accept data in byte form.
  1232.  
  1233.  
  1234.  
  1235.           <F1> Format Data Long command:
  1236.  
  1237.           The  <F1> F D L command changes the data window  format 
  1238.      to  display  and  accept data in long  interger  form.  Data 
  1239.      must be entered as addresses under this format.
  1240.  
  1241.  
  1242.  
  1243.           <F1> Format Data Word command:
  1244.  
  1245.           The  <F1> F D W command changes the data window  format 
  1246.      to display and accept data in word form.
  1247.  
  1248.  
  1249.           <F1> Format Radix Binary command:
  1250.  
  1251.           The  <F1>  F  R B command  causes the  disassembler  to 
  1252.      display immediate operands in binary.  Note:  Due to leading 
  1253.      zero  supression size of operand must be determined by bytes 
  1254.      disassembled.
  1255.  
  1256.  
  1257.  
  1258.           <F1> Format Radix Decimal command:
  1259.  
  1260.           The  <F1>  F  R D command causes  the  disassembler  to 
  1261.      display immediate operands in decimal.  Note: Due to leading 
  1262.      zero  supression size of operand must be determined by bytes 
  1263.      disassembled.
  1264.  
  1265.  
  1266.  
  1267.           <F1> Format Radix Hexadecimal command:
  1268.  
  1269.           The  <F1>  F  R H command causes  the  disassembler  to 
  1270.      display immediate operands in hexadecimal.  Byte values will 
  1271.      be  displayed as two digits and words will be  displayed  as 
  1272.      four digits.
  1273.  
  1274.  
  1275.  
  1276.           <F1> Format Radix Octal command:
  1277.  
  1278.           The  <F1>  F  R O command causes  the  disassembler  to 
  1279.      display immediate operands in octal.  Note:  Due to  leading 
  1280.      zero  supression size of operand must be determined by bytes 
  1281.      disassembled.
  1282. .pa
  1283.                               >>> IO <<<
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.           Raid  allows the user to input from and output to any 8 
  1290.      or  16  bit port.  
  1291.  
  1292.           Raid  also  allow  a user to input from  and  output  a 
  1293.      device.  To do device I/O specify a device (LPT1,  COM2,...) 
  1294.      with  the  <F1> D N command.  To output to a device then use 
  1295.      the <F1> D W command.  To input from a device use the <F1> D 
  1296.      R command. Note: NO colon follows the device name!
  1297.  
  1298.  
  1299.  
  1300.           <F1> Io Input command:
  1301.  
  1302.           The  <F1>  I I command allows a user to  read  16  bits 
  1303.      ports.  Is a count is  specified  the starting port  address 
  1304.      is  displayed followed by the port contents and the contents 
  1305.      of  every  successive  port  address  for  the  count.   The 
  1306.      information will be displayed on the display line.
  1307.  
  1308.           The user will be prompted:
  1309.  
  1310.                'Enter I/O port address, optional count:'
  1311.  
  1312.           The  I/O  port address is a hardware I/O  port  address 
  1313.      between 0 and 0ffffh.
  1314.  
  1315.           The  optional  count defaults to 1.  If  the  specified 
  1316.      count is too large to fit on the display line the data  will 
  1317.      be truncated.
  1318.  
  1319.  
  1320.  
  1321.           <F1> Io Out command:
  1322.  
  1323.           The  <F1>  I  O  command  writes  words  to  successive 
  1324.      addresses. Or of course a word to an address.
  1325.  
  1326.           The user will be prompted:
  1327.  
  1328.                'Enter I/O port address, word list:'
  1329.  
  1330.           The  I/O  port address is a hardware I/O  port  address 
  1331.      between 0 and 0ffffh.
  1332.  
  1333.           The word list is the data to be output to the port(s).
  1334.  
  1335.                Example:
  1336.                        27,34c7        ;port 27=34c7
  1337.                        38,1234,565d   ;port 38=1234, port 3a=565d
  1338.           <F1> Io Read command:
  1339.  
  1340.           The  <F1>  I R command allows a user to  read  8  bits 
  1341.      ports.  Is a count is  specified  the starting port  address 
  1342.      is  displayed followed by the port contents and the contents 
  1343.      of  every  successive  port  address  for  the  count.   The 
  1344.      information will be displayed on the display line.
  1345.  
  1346.           The user will be prompted:
  1347.  
  1348.                'Enter I/O port address, optional count:'
  1349.  
  1350.           The  I/O  port address is a hardware I/O  port  address 
  1351.      between 0 and 0ffffh.
  1352.  
  1353.           The  optional  count defaults to 1.  If  the  specified 
  1354.      count is too large to fit on the display line the data  will 
  1355.      be truncated.
  1356.  
  1357.  
  1358.  
  1359.           <F1> Io Write command:
  1360.  
  1361.           The  <F1>  I  W  command  writes  bytes  to  successive 
  1362.      addresses. Or of course a byte to an address.
  1363.  
  1364.           The user will be prompted:
  1365.  
  1366.                'Enter I/O port address, byte list:'
  1367.  
  1368.           The  I/O  port address is a hardware I/O  port  address 
  1369.      between 0 and 0ffffh.
  1370.  
  1371.           The byte list is the data to be output to the port(s).
  1372.  
  1373.                Example:
  1374.  
  1375.                        27,34      ;port 27=34
  1376.                        38,12,56   ;port 38=12, port 39=56
  1377.  
  1378.  
  1379. .pa
  1380.                           >>> MEMORY <<<
  1381.  
  1382.  
  1383.  
  1384.  
  1385.           Raid  has  facilitys for dealing directly with  memory. 
  1386.      The features include clearing a portion of memory (<F1> M  C 
  1387.      command),  finding  a pattern in memory (<F1> M F  command), 
  1388.      moving  a  block of data in memory (<F1> M M  command),  and 
  1389.      setting a pattern in memory (<F1> M S command).
  1390.  
  1391.  
  1392.  
  1393.           <F1> Memory Clear command:
  1394.  
  1395.           The <F1> M C command clears a range of memory. Starting 
  1396.      at  a specfied address all bytes are set to 0 for the  count 
  1397.      specified.
  1398.  
  1399.           The user is prompted:
  1400.  
  1401.              'Enter starting address, number of bytes to clear:'
  1402.  
  1403.           The starting address is the byte to be cleared.
  1404.  
  1405.           The number of bytes to clear is just that.
  1406.  
  1407.                Example:
  1408.                          100,100 would clear 100h thru 1FFh
  1409.  
  1410.  
  1411.  
  1412.           <F1> Memory Find command:
  1413.  
  1414.           The  <F1>  M  F command finds a specific byte  or  byte 
  1415.      pattern in memory.
  1416.  
  1417.           The user is prompted:
  1418.  
  1419.                'Enter starting address, count, data byte(s):'
  1420.  
  1421.           The  starting address specifies the first  location  to 
  1422.      look for the pattern.
  1423.  
  1424.           The count is how many successive locations to search.
  1425.  
  1426.           The  data bytes is a byte list refering to the  pattern 
  1427.      to be found.
  1428.  
  1429.                Example:
  1430.                          100,1000,'t','e','s','t',0d,0a
  1431.  
  1432.                          Searches   for  'test'  followed  by   a 
  1433.                          carriage  return-line  feed starting  at 
  1434.                          address 100h for 1000h bytes.
  1435.           <F1> Memory Move command:
  1436.  
  1437.           The  <F1> M M command copies a block of data  from  one 
  1438.      section  of memory to another.  Care must be taken that  the 
  1439.      blocks  do  not overlap unless a repeated pattern is  to  be 
  1440.      stored. If that is the case use the <F1> M S command.
  1441.  
  1442.           The user will be prompted:
  1443.  
  1444.           'Enter source address, count, destionation address:'
  1445.  
  1446.           The  source address is specified as segment:offset.  If 
  1447.      the segment is omitted it will default to DS:.
  1448.  
  1449.           The count is the number of bytes to be copied.
  1450.  
  1451.           The    destionation    address    is    specified    as 
  1452.      segment:offset.  If  the  segment is  omitted  then  DS:  is 
  1453.      assumed.
  1454.  
  1455.                Example:
  1456.                          1000,3cb,4500
  1457.                     3cbh bytes will be copied from 1000h to 4500h.
  1458.  
  1459.  
  1460.  
  1461.           <F1> Memory Set command:
  1462.  
  1463.           The  <F1>  M  S  command  sets a  range  of  memory  to 
  1464.      specified byte pattern.
  1465.  
  1466.           The user will be prompted:
  1467.  
  1468.                'Enter starting address, count, data byte(s):'
  1469.  
  1470.           The  starting address specifies what address  to  start 
  1471.      placing   the   specified   pattern.   It  is   entered   as 
  1472.      segment:offset.  If  the  segment is ommitted  then  DS:  is 
  1473.      assumed.
  1474.  
  1475.           The count specifies how many times the pattern is to be      
  1476.        stored.
  1477.  
  1478.           The  data byte(s) refers to a byte list that  specifies 
  1479.      the pattern to be stored.
  1480. .pa
  1481.                          >>> PROGRAM <<<
  1482.  
  1483.  
  1484.  
  1485.  
  1486.           Raid  has  various  way of  executing  a  program.  The 
  1487.      program  can  be started at a specified address (<F1> P  G). 
  1488.      The program can be (re)started at the current CS:IP (<F1>  P 
  1489.      R). The program can be traced instruction at a time or until 
  1490.      a specified condition has occured (<F1> P T). Or the program 
  1491.      can  be proceeded thru (<F1> P P).  Proceeding is just  like 
  1492.      tracing except CALLs, INTerrupt, LOOPs, ect are not traced.
  1493.  
  1494.           There  is also a facility  for entering  arguments to  a 
  1495.      program to use as if they were entered on the command line.
  1496.  
  1497.           There  is  a  symbol submenu for  manipulating  program 
  1498.      symbols.
  1499.  
  1500.  
  1501.  
  1502.           <F1> Program Arguments command:
  1503.  
  1504.           The <F1> P A command is used to enter a command line to 
  1505.      the program.  This line should be entered as arguments  that 
  1506.      would  normally follow the program name.  Program  arguments 
  1507.      may  be specified after the program name to load in the raid 
  1508.      command line.
  1509.  
  1510.           The command line is placed at DS:0080.  and FCBs 5C and 
  1511.      6C are set.
  1512.  
  1513.           The user will be prompted:
  1514.  
  1515.                'Enter command line:'
  1516.  
  1517.           The  command  line  should be  entered  followed  by  a 
  1518.      return.
  1519.  
  1520.  
  1521.  
  1522.           <F1> Program Go command:
  1523.  
  1524.           The  <F1>  P G command starts a program executing at  a 
  1525.      specfied address.
  1526.  
  1527.           The user will be prompted:
  1528.  
  1529.                'Enter starting address:'
  1530.  
  1531.           The starting address refers to where program  execution 
  1532.      is to begin.  The address is specified as segment:offset. If 
  1533.      the segement is omitted then CS: is assumed
  1534. .pa
  1535.           <F1> Program Proceed command:
  1536.  
  1537.           The   <F1>  P  P  command  will  trace  a  program  one 
  1538.      instruction at a time.  The difference from this and tracing 
  1539.      is  that  certain  intructions  are  skipped.   This  avoids 
  1540.      stepping  thru a loop several times or thru a call  that  is 
  1541.      known to work.
  1542.  
  1543.           The following instructions are skipped:
  1544.  
  1545.                     CALL
  1546.                     INT
  1547.                     LOOP
  1548.                     LOOPNZ / LOOPNE
  1549.                     LOOPZ / LOOPE
  1550.                     REP (and following intruction)
  1551.                     REPZ / REPE (and following instruction)
  1552.  
  1553.           The <F6> key has the same function as <F1> P P.
  1554.  
  1555.  
  1556.  
  1557.           <F1> Program Restart command:
  1558.  
  1559.           The  <F1>  P  R  command restarts the  program  at  the 
  1560.      current instruction pointer (CS:IP). When a program is first 
  1561.      loaded  this  command  can be used to execute  it  from  the 
  1562.      starting address.
  1563.  
  1564.           The <F7> key has the same function as <F1> P R.
  1565.  
  1566.  
  1567.  
  1568.           <F1> Program Symbol Add command:
  1569.  
  1570.           The  <F1>  P S A command adds a symbol  to  the  symbol 
  1571.      table.  Once  a  symbol is added it will be honored  by  the 
  1572.      disassembler and may be used in expressions.
  1573.  
  1574.           If  the symbol already exist it will be replaced by the 
  1575.      new values entered.
  1576.  
  1577.           The user will be prompted:
  1578.  
  1579.                'Enter symbol name, address [,type [,size]]:'
  1580.  
  1581.           The  symbol  name  is  any character string  (Up  to  9 
  1582.      characters). Note: all characters are valid except ',' and a 
  1583.      space.
  1584.  
  1585.           The  address  is  entered  as  segment:offset.  If  the 
  1586.      segment is omitted then CS: is assumed.
  1587.  
  1588.           The  type is an optional single character  refering  to 
  1589.      what type of symbol is to be defined.  The default is Label. 
  1590.           Symbol types:
  1591.  
  1592.                B    For byte DB
  1593.                C    For constant EQU
  1594.                L    For label x:
  1595.                T    For text DB 'x'
  1596.                W    For word DW
  1597.  
  1598.                Note:  The  disassembler takes types into  account 
  1599.                       for a more acurate disassemble.
  1600.  
  1601.  
  1602.           The  size is a word that refers to how long the  symbol 
  1603.      field is.
  1604.  
  1605.                Examples:
  1606.  
  1607.                     FOO,CS:1234         ;Label FOO: at CS:1234
  1608.  
  1609.                     APPLE,27,B,10       ;APPLE at CS:27 is data
  1610.                                         ;in bytes for 10 bytes
  1611.  
  1612.  
  1613.  
  1614.           <F1> Program Symbol Initialize command:
  1615.  
  1616.           The  <F1>  P S I command initializes the symbol  table. 
  1617.      All symbols are erased.
  1618.  
  1619.  
  1620.  
  1621.           <F1> Program Symbol List command:
  1622.  
  1623.           The <F1> P S L command displays the symbol table. To do 
  1624.      this  the normal raid windows will be replaced by  a  symbol 
  1625.      window. The escape key will bring them back.
  1626.  
  1627.           Symbols are displayed in alphabetic order.
  1628.  
  1629.           The  PgDn  and  PgUp  keys may be used  to  scroll  the 
  1630.      window.  The  display can be positioned to the first  symbol 
  1631.      starting with a specified letter by typing the letter.
  1632.  
  1633.           If  more  than 23 symbols are defined the  symbols  are 
  1634.      displayed in two columns.
  1635.  
  1636.                Display example:
  1637.  
  1638.                     FOOBAR    1EC5:023B Label
  1639.                     FOODATA   1EC5:43CB Byte  Length=12
  1640. .pa
  1641.           <F1> Program Symbol Read command:
  1642.  
  1643.           The  <F1>  P  S R command reads a .SYM  file  into  the 
  1644.      symbol table.  The .SYM file must have been created with the 
  1645.      <F1> P S W commands or the MAP2SYM utility.
  1646.  
  1647.           Any  existing  symbols  in  the symbol  table  will  be 
  1648.      detroyed when the symbol file is loaded.
  1649.  
  1650.                The user will be prompted:
  1651.  
  1652.                     'Enter file name:'
  1653.  
  1654.                A   file  name  must  be  specified.   Full   path 
  1655.      specification  may be used.  A symbol file does not have  to 
  1656.      have a .SYM extension so extension must be specified even if 
  1657.      it's .SYM.
  1658.  
  1659.                If  a  .SYM file exist with the same name  as  the 
  1660.      program loaded for debugging it is automatically loaded into 
  1661.      the symbol table.
  1662.  
  1663.  
  1664.  
  1665.           <F1> Program Symbol Write command:
  1666.  
  1667.           The  <F1>  P S W command write the symbol  table  to  a 
  1668.      file.  The specified extension should be .SYM so the symbols 
  1669.      will  automatically be loaded in future debugging  sessions. 
  1670.      The  symbol  file  can  be reloaded using the  <F1>  P  S  R 
  1671.      command.
  1672.  
  1673.           The user will be prompted:
  1674.  
  1675.                'Enter file name:'
  1676.  
  1677.           A file name must be specified.  Full path specification 
  1678.      may be used.
  1679.  
  1680.           If the file already exist it will be overwritten.
  1681. .pa
  1682.           <F1> Program Symbol Trace command:
  1683.  
  1684.           The <F1> P S T command traces a program one instruction 
  1685.      at  a  time.  It  can also execute  a  specified  number  of 
  1686.      instructions   before  breaking  execution.   Optionally   a 
  1687.      condition may be specified to break execution on.
  1688.  
  1689.           The <F5> key will trace one instruction at a time.
  1690.  
  1691.           When  the <F5> key is used and the screen is in  update 
  1692.      mode there may be a flicker.  The screen will flicker if the 
  1693.      instruction to be executed could possibly effect the screen. 
  1694.      If not no flicker will occur.
  1695.  
  1696.           When  a  condition is specified you have an  option  of 
  1697.      'watching  the  program run'.  To do this put the screen  in 
  1698.      nonupdate mode.  All program output will overwrite the  raid 
  1699.      screen.  When  command  mode is resumed press the  <F9>  key 
  1700.      twice if the display needs to be restored.
  1701.  
  1702.           When a program is being traced the escape key will stop 
  1703.      program tracing.
  1704.  
  1705.           When tracing for a condition the screen update flag can 
  1706.      be toggled using the <F9> key. This is NOT advised.
  1707.  
  1708.           The screen mode (update/nonupdate) can be set using the 
  1709.      <F1> S U and <F1> S N commands respectivly.
  1710.  
  1711.  
  1712.           The user will be prompted:
  1713.  
  1714.                'Enter number of instructions to execute [,cond]:'
  1715.  
  1716.           If  just return is pressed one instruction is exectued. 
  1717.      The   <F5>  key  is  recommended  for   single   instruction 
  1718.      execution.
  1719.  
  1720.           The  number of instructions to execute is just that.  A 
  1721.      word from 0 to 0ffffh may be specified.
  1722.  
  1723.           The cond is what condition the program is stop at. If a 
  1724.      conditional trace feature is needed use for example: CX<>CX.
  1725.      This  condition will never occur so only the count  will  be 
  1726.      valid but conditional features may be used.  For information 
  1727.      on  condition see conditional expressions in the expressions 
  1728.      section.
  1729. .pa
  1730.                             >>> QUIT <<<
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.           When  leaving raid all memory is freed,  all  interrupt 
  1737.      vectors   are  restored,   and  the  application  screen  is 
  1738.      restored.
  1739.  
  1740.           If  raid was invoked with a '+r' option then all memory 
  1741.      will  be  freed  except for what raid  needs  and  interrupt 
  1742.      vectors are NOT restored.
  1743.  
  1744.  
  1745.           <F1> Quit No command:
  1746.  
  1747.           The <F1> Q N command cancels the exit of raid to DOS in 
  1748.      case the user really does not want to exit.
  1749.  
  1750.  
  1751.  
  1752.           <F1> Quit Yes command:
  1753.  
  1754.           The <F1> Q Y command exit from raid to DOS.
  1755. .pa
  1756.                          >>> SCREEN <<<
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.           Raid  keeps  the application screen seperate  from  its 
  1763.      own.  If  two screens are available raid can run on one  and 
  1764.      the  application  program on the other.  If using  only  one 
  1765.      screen   it   will  be  shared  by  multiplexing  raid   and 
  1766.      application screens. There is also a faciltiy for saving the 
  1767.      application screen as a BLOAD (BASIC command) file.
  1768.  
  1769.  
  1770.  
  1771.           <F1> Screen Application command:
  1772.  
  1773.           The <F1> S A command displays the application screen to 
  1774.      return  to the raid screen press any  key.  The  application 
  1775.      will  be updated as the program runs if the screen update is 
  1776.      on (<F1> S U).
  1777.  
  1778.           The <F9> key has the same function.
  1779.  
  1780.  
  1781.  
  1782.           <F1> Screen Color command:
  1783.  
  1784.           The  <F1>  S  C  command forces raid  to  use  a  color 
  1785.      display.
  1786.  
  1787.  
  1788.  
  1789.           <F1> Screen Monochrome command:
  1790.  
  1791.           The  <F1> S M command forces raid to use  a  monochrome 
  1792.      display.
  1793.  
  1794.  
  1795.  
  1796.           <F1> Screen Nonupdate command:
  1797.  
  1798.           The  <F1> S N command causes raid not to keep track  of 
  1799.      screen  changes made by the program currently running.  This 
  1800.      is useful for the <F1> P T command or if raid is for example 
  1801.      using the color display and the application the monochrome.
  1802.  
  1803.  
  1804.  
  1805.           <F1> Screen Save command:
  1806.  
  1807.           The  <F1> S S command writes the application screen  to 
  1808.      disk in a format so it can be load from BASIC with the BLOAD      
  1809.      command.
  1810.  
  1811.           <F1> Screen Update command:
  1812.  
  1813.           The  <F1> S U command causes raid to keep track of  the 
  1814.      changes  made  to  the application  screen.  During  tracing 
  1815.      instructions  that could effect the screen there will  be  a 
  1816.      short  flicker.  To view the application screen use the <F9> 
  1817.      key or the <F1> S A command.
  1818. .pa
  1819.                            >>> TRACE <<<
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.           Raid  has a facility for tracing  interrupts.  Normally 
  1826.      interrupts are not traced. With the trace facility ranges of 
  1827.      interrupts may be set to trace. Interrupts 0, 1, 3, 6, 8, 9, 
  1828.      and 20 cannot be traced because raid takes these over.  When 
  1829.      tracing interrupt 21 (DOS call) there will be an extra  step 
  1830.      checking  for an exit function.  After this interrupt 21  is 
  1831.      vanilla.
  1832.  
  1833.  
  1834.  
  1835.           <F1> Trace Clear command:
  1836.  
  1837.           The  <F1> T C command disables an interrupt or range of 
  1838.      interrupts to trace.
  1839.  
  1840.                The user will be prompted:
  1841.  
  1842.                     'Enter low INT range [, high INT range]:'
  1843.  
  1844.                In  response  the  user may  enter  a  hexadecimal 
  1845.           number of an interrupt not to trace,  or two values may 
  1846.           be  entered to specify a range of interrupts not to  be 
  1847.           traced.
  1848.  
  1849.  
  1850.  
  1851.           <F1> Trace Disable command:
  1852.  
  1853.           The  <F1> T D command disables all  interrupt  tracing. 
  1854.      The is raids default.  To trace a particular interrupt range 
  1855.      use  the <F1> T S command.  To enable all interrupt  tracing 
  1856.      use the <F1> T E command.
  1857.  
  1858.  
  1859.  
  1860.           <F1> Trace Enable command:
  1861.  
  1862.           The  <F1>  T E command enables all  interrupt  tracing. 
  1863.      Except of course the ones that cannot be traced.  To disable 
  1864.      a  certain interrupt or range of interrupts use the <F1> T C 
  1865.      command.  To disable all interrupt tracing use the <F1> T  D 
  1866.      command.
  1867. .pa
  1868.           <F1> Trace Set command:
  1869.  
  1870.           The  <F1>  T S command enable an interrupt or range  of 
  1871.      interrupts to trace.
  1872.  
  1873.                The user will be prompted:
  1874.  
  1875.                     'Enter low INT range [, high INT range]:'
  1876.  
  1877.                A  hexadecimal value may be entered to  enable  an 
  1878.      interrupt.  Two values may be specified to enable a range of 
  1879.      interrupts.  Interrupts specified that are not allowed to be 
  1880.      traced  will be ignored.  If for example '2,5' were  entered 
  1881.      interrupts 2,  4, and 5 would be enabled. Not 3 because raid 
  1882.      uses it for breakpoints.
  1883. .pa
  1884.                          >>> WINDOW <<<
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.           Information  on windows is in the windows chapter.  The 
  1891.      following are descriptions of the window commands.
  1892.  
  1893.  
  1894.  
  1895.           <F1> Window Address command:
  1896.  
  1897.           The  <F1>  W A command sets the orgin  address  of  the 
  1898.      current window.  An address entered followed by the <F2> key 
  1899.      has the same effect.
  1900.  
  1901.                The user will be prompted:
  1902.  
  1903.                     'Enter address:'
  1904.  
  1905.                In  the  DATA,  PROGRAM,  and STACK  windows  full 
  1906.           memory  address  may be specified.  If the  segment  is 
  1907.           omitted DS, CS, and SS are used respectivly.
  1908.  
  1909.                In  the BREAKPOINT window a breakpoint number must 
  1910.           be specified.
  1911.  
  1912.                In  the  CPU window this command issues  an  error 
  1913.           message.
  1914.  
  1915.  
  1916.  
  1917.           <F1> Window Change Breakpoint command:
  1918.  
  1919.           The  <F1>  W  C B command makes the  BREAKPOINT  window 
  1920.      active. CTRL-B has the same effect. For more information see 
  1921.      the breakpoint window section in the windows chapter.
  1922.  
  1923.  
  1924.  
  1925.           <F1> Window Change Cpu command:
  1926.  
  1927.           The  <F1>  W C C command makes the CPU  window  active. 
  1928.      CTRL-C  has  the effect.  For more information see  the  cpu 
  1929.      window section in the windows chapter.
  1930.  
  1931.  
  1932.  
  1933.           <F1> Window Change Data command:
  1934.  
  1935.           The  <F1> W C D command makes the DATA  window  active. 
  1936.      CTRL-D  has  the same effect.  For more information see  the 
  1937.      data window section in the windows chapter.
  1938.  
  1939.           <F1> Window Change Program command:
  1940.  
  1941.           The <F1> W C P command makes the PROGRAM window active. 
  1942.      CTRL-P  has the same effect.  For more information  see  the 
  1943.      program window section in the windows chapter.
  1944.  
  1945.  
  1946.  
  1947.           <F1> Window Change Stack command:
  1948.  
  1949.           The  <F1> W C S command makes the STACK window  active. 
  1950.      CTRL-S  has  the same effect.  For more information see  the 
  1951.      stack window section in the windows chapter.
  1952.  
  1953.  
  1954.  
  1955.           <F1> Window Exchange command:
  1956.  
  1957.           The  <F1> W E command will change from  hexadecimal  to 
  1958.      text  mode in the DATA window.  In the STACK window it  will 
  1959.      reverse  the  direction.   In  other  windows  this  has  no 
  1960.      function. The <F3> key has the same effect.
  1961. .pa
  1962.                       >>> SUMMARY OF COMMANDS <<<
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.      Command                       Description
  1969.      =======                       ===========
  1970.  
  1971.      Breakpoint Clear              Clear a breakpoint
  1972.  
  1973.      Breakpoint Disable All        Disable all breakpoints
  1974.  
  1975.      Breakpoint Disable Single     Disable a breakpoint
  1976.  
  1977.      Breakpoint Enable All         Enable all breakpoints
  1978.  
  1979.      Breakpoint Enable Single      Enable a single breakpoint
  1980.  
  1981.      Breakpoint Initialize         Clear all breakpoints
  1982.  
  1983.      Breakpoint Set                Set a breakpoint
  1984.  
  1985.      Breakpoint Temporary          Toggle temporary breakpoint
  1986.  
  1987.      Disk Disassemble              Disassemble program to a file
  1988.  
  1989.      Disk Get Logical              Read a logical sector
  1990.  
  1991.      Disk Get Physical             Read a physical sector
  1992.  
  1993.      Disk Load                     Load a program for debugging
  1994.  
  1995.      Disk Name                     Specify a file name
  1996.  
  1997.      Disk Put Logical              Write a logical sector
  1998.  
  1999.      Disk Put Physical             Write a physical sector
  2000.  
  2001.      Disk Read                     Read a file
  2002.  
  2003.      Disk Write                    Write a file
  2004.  
  2005.      Evaluate                      Evaluate an expression
  2006.  
  2007.      Format Data Address           Data in address format
  2008.  
  2009.      Format Data Byte              Data in byte format
  2010.  
  2011.      Format Data Long              Data in long format
  2012.  
  2013.      Format Data Word              Data in word format
  2014.  
  2015.      Format Radix Binary           Display operands in binary
  2016.  
  2017.      Format Radix Decimal          Display operands in decimal
  2018.  
  2019.      Format Radix Hexadecimal      Display operands in hex
  2020.  
  2021.      Format Radix Octal            Display operands in octal
  2022.  
  2023.      I/o In                        Read word(s) from port(s)
  2024.  
  2025.      I/o Out                       Write word(s) to port(s)
  2026.  
  2027.      I/o Read                      Read byte(s) from port(s)
  2028.  
  2029.      I/o Write                     Write byte(s) to port(s)
  2030.  
  2031.      Memory Clear                  Clear range of memory
  2032.  
  2033.      Memory Find                   Find pattern in memory
  2034.  
  2035.      Memory Move                   Copy a memory block
  2036.  
  2037.      Memory Set                    Place a pattern in memory
  2038.  
  2039.      Program Arguments             Enter command line
  2040.  
  2041.      Program Go                    Execute start at an address
  2042.  
  2043.      Program Proceed               Trace, skipping loops
  2044.  
  2045.      Program Restart               Continue execution
  2046.  
  2047.      Program Symbol Add            Add a symbol to the table
  2048.  
  2049.      Program Symbol Initialize     Clear symbol table
  2050.  
  2051.      Program Symbol List           Display symbol table
  2052.  
  2053.      Program Symbol Read           Read symbol table from disk
  2054.  
  2055.      Program Symbol Write          Write symbol table to disk
  2056.  
  2057.      Program Trace                 Execute a single instruction
  2058.  
  2059.      Quit No                       Cancel quit command
  2060.  
  2061.      Quit Yes                      Exit from raid to DOS
  2062.  
  2063.      Screen Application            Display application screen
  2064.  
  2065.      Screen Color                  Use color display
  2066.  
  2067.      Screen Monochrome             Use monochrome display
  2068.  
  2069.      Screen Nonupdate              No application screen update
  2070.  
  2071.      Screen Save                   Save user screen to a file
  2072.      Screen Update                 Update application screen
  2073.  
  2074.      Trace Clear                   Disable range of interrupt
  2075.                                    tracing
  2076.  
  2077.      Trace Disable                 Disable all interrupt tracing
  2078.  
  2079.      Trace Enable                  Enable all interrupt tracing
  2080.  
  2081.      Trace Set                     Set range of interrupt tracing
  2082.  
  2083.      Window Address                Set orgin address of window
  2084.  
  2085.      Window Change Breakpoint      Select breakpoint window
  2086.  
  2087.      Window Change Cpu             Select cpu window
  2088.  
  2089.      Window Change Data            Select data window
  2090.  
  2091.      Window Change Program         Select program window
  2092.  
  2093.      Window Change Stack           Select stack window
  2094.  
  2095.      Window Exchange               Select other window function
  2096.  
  2097.      <ESC>                         Display funtion key setting or
  2098.                                    exit from command tree.
  2099.  
  2100.      <F1>                          Issue a command
  2101.  
  2102.      <F2>                          Set window address
  2103.  
  2104.      <F3>                          Window exchange
  2105.  
  2106.      <F4>                          Change window
  2107.  
  2108.      <F5>                          Execute single intruction
  2109.  
  2110.      <F6>                          Trace, skipping loops
  2111.  
  2112.      <F7>                          Continue execution
  2113.  
  2114.      <F8>                          Evaluate expression
  2115.  
  2116.      <F9>                          Show application screen
  2117.  
  2118.      <F10>                         Toggle temporary breakpoint
  2119.  
  2120.      CTRL-B                        Select breakpoint window
  2121.  
  2122.      CTRL-C                        Select cpu window
  2123.  
  2124.      CTRL-D                        Select data window
  2125.  
  2126.      CTRL-E                        Display last error message
  2127.      CTRL-N                        Set IP to current item address
  2128.  
  2129.      CTRL-P                        Select program window
  2130.  
  2131.      CTRL-S                        Select stack window
  2132.  
  2133.      <5> on pad (no numlock)       Break program execution
  2134.  
  2135. .pa
  2136.                          >>> MESSAGES <<<
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.           ? Access denied
  2143.  
  2144.                     This  is a DOS error meaning the wanted  file 
  2145.                cannot be accessed.
  2146.  
  2147.  
  2148.           ? Attempt to divide by zero
  2149.  
  2150.                     An  expression was entered that attempted  to 
  2151.                divide  by zero.  For example if BX=0 and SI/BX is 
  2152.                entered as an expession.
  2153.  
  2154.  
  2155.           Bad FAT image
  2156.  
  2157.                     A bad File Allocation Table was detected on a 
  2158.                disk.
  2159.  
  2160.  
  2161.           Bad req strc len
  2162.  
  2163.                     A bad request structure length was specified.
  2164.  
  2165.  
  2166.           ? Bad sector - CRC failed
  2167.  
  2168.                     The  CRC for a sector was wrong.  This  means 
  2169.                the data in the sector is not valid.
  2170.  
  2171.  
  2172.           *** BREAKPOINT x ***
  2173.  
  2174.                     This message is issued when raid is restarted 
  2175.                after  a program breakpoint is reached.  The x  is 
  2176.                replaced  by  the breakpoint number or  ?  if  the 
  2177.                breakpoint reached was not defined by raid.
  2178.  
  2179.  
  2180.           Bytes read from disk = x
  2181.  
  2182.                     After  a disk read this message displays  the 
  2183.                number of bytes read in hexadecimal.
  2184.  
  2185.  
  2186.           Cannot find pattern in memory
  2187.  
  2188.                     When  using the <F1> M F command the  pattern 
  2189.                was not found.
  2190.  
  2191.           ? Cannot set breakpoint
  2192.  
  2193.                     A  breakpoint was attempted to be set in  ROM 
  2194.                or  non-existent memory.  This error can  also  be 
  2195.                caused by faulty memory.
  2196.  
  2197.  
  2198.           ? Cannot use register twice in address
  2199.  
  2200.                     An  attempt  to assemble a  memory  reference 
  2201.                that  used  an index register twice.  This can  be 
  2202.                done  in expressions but not assembled  since  the 
  2203.                8086 processor does not support this.
  2204.  
  2205.  
  2206.           Character device error
  2207.  
  2208.                     A   ROM   error   occured  when   trying   to 
  2209.                communicate to a character device. (lpt, com,...).
  2210.  
  2211.  
  2212.           ? Close failed - dir entry lost
  2213.  
  2214.                     A  DOS error occured when trying to  close  a 
  2215.                file.  If  this  occurs the file written will  not 
  2216.                contain any new information.
  2217.  
  2218.  
  2219.           >>> Condition true: x <<<
  2220.  
  2221.                     A waited for condition occured.  This will be 
  2222.                displayed when tracing a program till a condition.
  2223.  
  2224.  
  2225.           ? Condition truncated - Too big
  2226.  
  2227.                     The   condition   entered   was   too   long. 
  2228.                Conditional  breakpoint conditions are limited  to 
  2229.                15 characters.
  2230.  
  2231.  
  2232.           ? CPU flags must be 0 or 1 only
  2233.  
  2234.                     An  attempt was made to enter a  value  other 
  2235.                than 0 or 1 in a CPU flag field.
  2236.  
  2237.  
  2238.           ? CPU window has no address
  2239.  
  2240.                     An  attempt was made to set the orgin address 
  2241.                of the CPU window which has no addresses.
  2242.  
  2243. .pa
  2244.           Data error
  2245.  
  2246.                     The  ROM  detected a data error  while  doing 
  2247.                I/O.
  2248.  
  2249.  
  2250.           ? Disk controller failed
  2251.  
  2252.                     The ROM detected a disk controller failure.
  2253.  
  2254.  
  2255.           ? Disk is write protected
  2256.  
  2257.                     An attempt to write on a write protected disk 
  2258.                was made.
  2259.  
  2260.  
  2261.           ? Disk seek failed
  2262.  
  2263.                     A seek error occured while reading or writing 
  2264.                a disk sector.
  2265.  
  2266.  
  2267.           ? Disk timed out
  2268.  
  2269.                     The disk prematurly timed out.
  2270.  
  2271.  
  2272.           ? Divide overflow, Interrupt 0
  2273.  
  2274.                     The  8086  processor attempted to  divide  by 
  2275.                zero or a divide overflow occured.
  2276.  
  2277.  
  2278.           Drive not ready
  2279.  
  2280.                     The drive is not ready to be used.  The  door 
  2281.                is not closed, ect...
  2282.  
  2283.  
  2284.           ? File not found
  2285.  
  2286.                     The  specified  file  was not  found  in  the 
  2287.                directory.
  2288.  
  2289.  
  2290.           Found pattern at location: xxxx:xxxx
  2291.  
  2292.                     The  <F1> M F command found the pattern.  The 
  2293.                program window's address is set to the location.
  2294.  
  2295. .pa
  2296.           ? Free disk space exhasted
  2297.  
  2298.                     All free space on the disk has been used.  In 
  2299.                other words the disk is full.
  2300.  
  2301.  
  2302.           ? Garbage after expression
  2303.  
  2304.                     An  expression entered was valid  except  for 
  2305.                'junk' entered after it.
  2306.  
  2307.  
  2308.           ? General disk I/O failure
  2309.  
  2310.                     A  ROM  error  that means the last  disk  I/O 
  2311.                failed.
  2312.  
  2313.  
  2314.           General error
  2315.  
  2316.                     A ROM error that means the last I/O failed.
  2317.  
  2318.  
  2319.           ? Immediate value out of range
  2320.  
  2321.                     An immediate value was specified that was out 
  2322.                of  range.  Example:  MOV AL,3000 will cause  this 
  2323.                error  because the largest number AL can  hold  is 
  2324.                0FFh.
  2325.  
  2326.  
  2327.           ? Insufficient free memory
  2328.  
  2329.                     This  message  is  issued when there  is  not 
  2330.                enough RAM to load a program.
  2331.  
  2332.  
  2333.           ? Invalid address list
  2334.  
  2335.                     The   entered   address  list   contains   an 
  2336.                improperly formatted entry.
  2337.  
  2338.  
  2339.           ? Invalid breakpoint number
  2340.  
  2341.                     A  breakpoint number was specified  that  was 
  2342.                not valid. Valid breakpoint numbers are 0 thru 9.
  2343.  
  2344.  
  2345.           ? Invalid breakpoint type
  2346.  
  2347.                     A  breakpoint  type was specified other  that 
  2348.                Call, Disable, Enable, or Stop.
  2349.  
  2350.  
  2351.           ? Invalid byte list
  2352.  
  2353.                     The entered byte list contains an  improperly 
  2354.                formatted entry or an entry that exceeds 0ffh.
  2355.  
  2356.  
  2357.           ? Invalid doubleword list
  2358.  
  2359.                     The   entered  doubleword  list  contains  an 
  2360.                improperly formatted entry.
  2361.  
  2362.  
  2363.           ? Invalid op code
  2364.  
  2365.                     An  unrecognized op code was attempted to  be 
  2366.                assembled.
  2367.  
  2368.  
  2369.           ? Invalid operand specified
  2370.  
  2371.                     The  operand  specified for the  op  code  is 
  2372.                invalid.   Note:   8087/80287  op  codes  are  not 
  2373.                supported,   they   must  be  entered  as   escape 
  2374.                sequences.
  2375.  
  2376.  
  2377.           ? Invalid path
  2378.  
  2379.                     The  path  specified in a file  specification 
  2380.                was not found.
  2381.  
  2382.  
  2383.           ? Invalid symbol type
  2384.  
  2385.                     A  symbol  type other  than  Byte,  Constant, 
  2386.                Label, Text, or Word was specified.
  2387.  
  2388.  
  2389.           ? Invalid word list
  2390.  
  2391.                     The entered word list contains an  improperly 
  2392.                formatted entry.
  2393.  
  2394.  
  2395.           *** Manual break from keyboard ***
  2396.  
  2397.                     The <5> key without numlock was pressed while 
  2398.                a  program  was  running.  Doing  this  interrupts 
  2399.                program execution.
  2400.  
  2401. .pa
  2402.           ? Missing closing brace }
  2403.  
  2404.                     An  opening  brace was encountered without  a 
  2405.                closing brace.
  2406.  
  2407.  
  2408.           ? Missing closing bracket ]
  2409.  
  2410.                     An opening bracket was encountered without  a           
  2411.                closing bracket.
  2412.  
  2413.  
  2414.           ? Missing closing parenthesis )
  2415.  
  2416.                     An  opening parenthesis was encounted without 
  2417.                a closing parenthesis.
  2418.  
  2419.  
  2420.           ? Missing closing quote
  2421.  
  2422.                     A  literal  was  entered  without  a  closing 
  2423.                quote.
  2424.  
  2425.  
  2426.           ? Missing operand
  2427.  
  2428.                     The  op  code to be assembled  required  more 
  2429.                operands then were specified.
  2430.  
  2431.  
  2432.           ? No directory space available
  2433.  
  2434.                     The  directory is full and can hold  no  more 
  2435.                file entrys.
  2436.  
  2437.  
  2438.           Out of paper
  2439.  
  2440.                     The printer is out of paper.
  2441.  
  2442.  
  2443.           >>> Please wait for disk access(es) <<<
  2444.  
  2445.                     Raid is accessing disk.
  2446.  
  2447.  
  2448.           >>> Please wait for memory access(es) <<<
  2449.  
  2450.                     Raid is accessing RAM.
  2451.  
  2452.  
  2453.           * PROGRAM ABORT - Fatal error *
  2454.  
  2455.                     A fatal DOS error was encounter and the Abort           
  2456.                option was entered.
  2457.           * Program loaded *
  2458.  
  2459.                     The   specified   program  was   successfully 
  2460.                loaded.
  2461.  
  2462.  
  2463.           * Program terminated normally *
  2464.  
  2465.                     The program terminated with a normal exit.
  2466.  
  2467.  
  2468.           Raid vx.x at your service...
  2469.  
  2470.                     Raid and optional files are loaded and  ready 
  2471.                for use.
  2472.  
  2473.  
  2474.           Read fault
  2475.  
  2476.                     ROM detected a read fault.
  2477.  
  2478.  
  2479.           ? Relative address out of range
  2480.  
  2481.                     A  relative address was entered that was  out 
  2482.                of the -128 to +128 byte range.
  2483.  
  2484.  
  2485.           ? Sector not found
  2486.  
  2487.                     The  specified sector does not exist or could 
  2488.                not be found.
  2489.  
  2490.  
  2491.           Seek error
  2492.  
  2493.                     The  ROM  detected a disk  seek  error  while 
  2494.                trying to read or write a sector.
  2495.  
  2496.  
  2497.           ? Symbol table empty
  2498.  
  2499.                     An attempt was made to display a non-existant           
  2500.                symbol table.
  2501.  
  2502.  
  2503.           ? Symbol table full
  2504.  
  2505.                     The symbol table is full and can hold no more           
  2506.                entries.
  2507.  
  2508. .pa
  2509.           ? Syntax error
  2510.  
  2511.                     A general syntax occured. This happens when a           
  2512.                sequence is expected to be entered and is not.
  2513.  
  2514.  
  2515.           *** TEMPORARY BREAKPOINT ***
  2516.  
  2517.                     This  is displayed when the program breaks on 
  2518.                a temporary breakpoint.
  2519.  
  2520.  
  2521.           ? Too many temporary breakpoints
  2522.  
  2523.                     An  attempt was made to define more than  ten           
  2524.                temporary breakpoints.
  2525.  
  2526.  
  2527.           *** TRACE ***
  2528.  
  2529.                     This means the program broke after  executing 
  2530.                a trace.
  2531.  
  2532.  
  2533.           ? Undefined OPcode, Interrupt 6
  2534.  
  2535.                     The  80286  attempted to execute  an  invalid           
  2536.                instruction.
  2537.  
  2538.  
  2539.           Unknown command
  2540.  
  2541.                     ROM returned an unknown command error.
  2542.  
  2543.  
  2544.           Unknown media
  2545.  
  2546.                     ROM returned an unknown media error.
  2547.  
  2548.  
  2549.           Unknown unit
  2550.  
  2551.                     ROM returned an unknown unit error.
  2552.  
  2553.  
  2554.           Write fault
  2555.  
  2556.                     ROM returned a write fault error.
  2557.  
  2558.  
  2559.           Write protected
  2560.  
  2561.                     ROM returned a write protect error meaning an  
  2562.                attempt  was  made to write on a  write  protected 
  2563.                disk.
  2564.